
#ifndef _SHARED_PTR_HPP_
#define _SHARED_PTR_HPP_

template <class T>
class Shared_ptr
{
  public:
    Shared_ptr(T *p) : ptr(p) {}

    T &operator*() const
    {
        return *ptr;
    }
    
    T *operator->() const
    {
        return ptr;
    }

  private:
    T *ptr;
};

#endif